From 392a8c76b8de2cbb2abb13e806d391c441ba9549 Mon Sep 17 00:00:00 2001 From: Tim Deegan Date: Tue, 6 Mar 2007 15:02:20 +0000 Subject: [PATCH] [XEN] Shadow: ignore shadow operations on dying domains so that they don't get confused by the way that shadow_teardown() leaves some of the mode bits set after releasing the shadow resources. Signed-off-by: Tim Deegan --- xen/arch/x86/mm/shadow/common.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c index 5b96bd986a..f341fe3bc8 100644 --- a/xen/arch/x86/mm/shadow/common.c +++ b/xen/arch/x86/mm/shadow/common.c @@ -2977,10 +2977,18 @@ int shadow_domctl(struct domain *d, if ( unlikely(d == current->domain) ) { - gdprintk(XENLOG_INFO, "Don't try to do a shadow op on yourself!\n"); + gdprintk(XENLOG_INFO, "Dom %u tried to do a shadow op on itself.\n", + d->domain_id); return -EINVAL; } + if ( unlikely(test_bit(_DOMF_dying, &d->domain_flags)) ) + { + gdprintk(XENLOG_INFO, "Ignoring shadow op on dying domain %u\n", + d->domain_id); + return 0; + } + switch ( sc->op ) { case XEN_DOMCTL_SHADOW_OP_OFF: -- 2.30.2